package com.shujia.scala

import scala.collection.mutable

object Demo12Set {
  def main(args: Array[String]): Unit = {

    /**
     * Set集合：更像数学上的集合，最大的特点：元素唯一，无序
     * 在Scala中也分为可变及不可变
     *
     * 主要适用于需要去重的场景
     */

    // Set集合的定义
    val set01: Set[Int] = Set[Int](1, 2, 3, 3, 3, 2, 1, 4, 5, 6) // 重复元素会自动去重
    println(set01)

    // 同List类似：map、filter、groupBy、flatMap、foreach操作都支持

    // Set还应用于集合间的计算
    val set1: Set[Int] = Set(1, 2, 3, 4, 5, 6)
    val set2: Set[Int] = Set(4, 5, 6, 7, 8, 9)

    println(set1 & set2)
    println(set1 | set2)
    println(set1 -- set2)
    println(set2 -- set1)

    println(set1.contains(2)) // 判断元素是否在集合内
    println(set1.contains(22)) // 判断元素是否在集合内

    // 可变的Set
    val mutableSet01: mutable.Set[Int] = scala.collection.mutable.Set[Int](1, 2, 2, 2, 3, 4, 5, 5, 1)
    println(mutableSet01)

    // 增加元素
    mutableSet01.add(6)
    mutableSet01.add(1)
    mutableSet01.add(7)
    println(mutableSet01)

    // 删除元素
    mutableSet01.remove(2)
    mutableSet01.remove(1)
    println(mutableSet01)

    // 修改元素：先删除再添加
    mutableSet01.remove(6)
    mutableSet01.add(66)
    println(mutableSet01)



  }

}
